If we find a Linux repository in $(LINUX_SRC_PATH) then symlink it
authorIan Campbell <ian.campbell@xensource.com>
Mon, 4 Jun 2007 14:41:32 +0000 (15:41 +0100)
committerIan Campbell <ian.campbell@xensource.com>
Mon, 4 Jun 2007 14:41:32 +0000 (15:41 +0100)
instead of cloning it. This enables developers to keep a linux tree
separate to their xen repository and to make changes there which are
picked up by the Xen build.

Signed-off-by: Ian Campbell <ian.campbell@xensource.com>
buildconfigs/src.hg-clone

index ab732770e87ed028bedb7da3088fd1729bf2edcb..d3696172d0add03cdd06e423795f977fdf8ac5fe 100644 (file)
@@ -20,17 +20,24 @@ endif
 XEN_LINUX_HGREV  ?= tip
 
 $(LINUX_SRCDIR)/.valid-src: $(__XEN_LINUX_UPDATE)
-       set -e ; __repo=$(XEN_LINUX_HGREPO) ; \
-       if [ ! -d $(LINUX_SRCDIR) ] ; then \
-           echo "Cloning $${__repo} to $(LINUX_SRCDIR)." ; \
-           $(HG) clone $${__repo} $(LINUX_SRCDIR) ; \
+       set -e ; \
+       if [ ! -e $(LINUX_SRCDIR)/.hg ] ; then \
+           __repo=$(XEN_LINUX_HGREPO) ; \
+           if [ -d $${__repo} ] ; then \
+               echo "Linking $${__repo} to $(LINUX_SRCDIR)." ; \
+               ln -s $${__repo} $(LINUX_SRCDIR) ; \
+           else \
+               echo "Cloning $${__repo} to $(LINUX_SRCDIR)." ; \
+               $(HG) clone $${__repo} $(LINUX_SRCDIR) ; \
+           fi ; \
        else \
-           echo "Pulling changes from $${__repo} into $(LINUX_SRCDIR)." ; \
-           $(HG) -R $(LINUX_SRCDIR) pull $${__repo} ; \
+           __parent=$$($(HG) -R $(LINUX_SRCDIR) path default) ; \
+           echo "Pulling changes from $${__parent} into $(LINUX_SRCDIR)." ; \
+           $(HG) -R $(LINUX_SRCDIR) pull $${__parent} ; \
        fi
        if [ -n "$(XEN_LINUX_HGREV)" ] ; then \
            echo "Updating $(LINUX_SRCDIR) to revision $(XEN_LINUX_HGREV)." ; \
-           $(HG) update -R $(LINUX_SRCDIR) $(XEN_LINUX_HGREV) ; \
+           ( cd $(LINUX_SRCDIR) && $(HG) update $(XEN_LINUX_HGREV) ); \
        fi
        touch $@